Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188192 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/vector b/include/vector index 0758f75..df14344 100644 --- a/include/vector +++ b/include/vector
@@ -319,7 +319,7 @@ #pragma warning( push ) #pragma warning( disable: 4231 ) #endif // _LIBCPP_MSVC -_LIBCPP_EXTERN_TEMPLATE(class __vector_base_common<true>) +_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS __vector_base_common<true>) #ifdef _LIBCPP_MSVC #pragma warning( pop ) #endif // _LIBCPP_MSVC @@ -474,7 +474,7 @@ } template <class _Tp, class _Allocator = allocator<_Tp> > -class _LIBCPP_TYPE_VIS vector +class _LIBCPP_TYPE_VIS_ONLY vector : private __vector_base<_Tp, _Allocator> { private: @@ -2011,7 +2011,7 @@ }; template <class _Allocator> -class _LIBCPP_TYPE_VIS vector<bool, _Allocator> +class _LIBCPP_TYPE_VIS_ONLY vector<bool, _Allocator> : private __vector_base_common<true> { public: @@ -2369,7 +2369,7 @@ friend class __bit_iterator<vector, false>; friend class __bit_iterator<vector, true>; friend struct __bit_array<vector>; - friend struct _LIBCPP_TYPE_VIS hash<vector>; + friend struct _LIBCPP_TYPE_VIS_ONLY hash<vector>; }; template <class _Allocator> @@ -3152,7 +3152,7 @@ } template <class _Allocator> -struct _LIBCPP_TYPE_VIS hash<vector<bool, _Allocator> > +struct _LIBCPP_TYPE_VIS_ONLY hash<vector<bool, _Allocator> > : public unary_function<vector<bool, _Allocator>, size_t> { _LIBCPP_INLINE_VISIBILITY